Phase interpolators suffer from non-linearity, which can become unacceptably large in the presence of process variations and routing mismatches. These non-linearity errors result in inaccurate clock timing, and can go unnoticed in high-volume manufacturing (HVM). This results in wrong timing margining results or poor input/output (I/O) performance due to inaccurate timing training.